package cn.zj.admin.modules.issues.domain;

import cn.zj.admin.modules.issues.type.IssType;
import cn.zj.admin.modules.issues.type.Status;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 抽象的描述
 * 项目、需求、任务、测试用例、Bug
 * @author xi.yang
 * @create 2019-10-03 11:12
 **/
@Document(collection = "t_pm_issues")
public class Issues implements Serializable {
    @Id
    private String id;
    /**
     * 类型
     */
    @Indexed
    private IssType issType;
    /**
     * 父id
     */
    @Indexed
    private String pid;
    /**
     * 关联条目ID
     */
    @Indexed
    private List<String> relatedIds;
    /**
     * 标题
     */
    @Indexed
    private String title;
    /**
     * 内容
     */
    @Indexed
    private String content;
    /**
     * 标签ID
     */
    @Indexed
    private List<String> tags;
    /**
     * 关联用户
     */
    @Indexed
    private List<Long> relatedUsers;
    /**
     * 指派用户
     */
    @Indexed
    private Long signUser;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 预计开始时间
     */
    private Date startTime;
    /**
     * 预计结束时间
     */
    private Date endTime;
    /**
     * 项目状态
     */
    @Indexed
    private Status status;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public List<String> getRelatedIds() {
        return relatedIds;
    }

    public void setRelatedIds(List<String> relatedIds) {
        this.relatedIds = relatedIds;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Status getStatus() {
        return status;
    }

    public void setStatus(Status status) {
        this.status = status;
    }

    public IssType getIssType() {
        return issType;
    }

    public void setIssType(IssType issType) {
        this.issType = issType;
    }

    public List<String> getTags() {
        return tags;
    }

    public void setTags(List<String> tags) {
        this.tags = tags;
    }

    public List<Long> getRelatedUsers() {
        return relatedUsers;
    }

    public void setRelatedUsers(List<Long> relatedUsers) {
        this.relatedUsers = relatedUsers;
    }

    public Long getSignUser() {
        return signUser;
    }

    public void setSignUser(Long signUser) {
        this.signUser = signUser;
    }
}
